<?xml version="1.0"?>
<component name="org.nuxeo.ecm.platform.search.pageproviders.override">

  <require>org.nuxeo.ecm.platform.search.pageproviders</require>

  <extension point="providers" target="org.nuxeo.ecm.platform.query.api.PageProviderService">

    <coreQueryPageProvider name="SAVED_SEARCHES_ALL">
      <pattern>
        SELECT * FROM Document WHERE ecm:mixinType = 'SavedSearch'
        AND ((saved:query IS NOT NULL AND saved:queryLanguage IS NOT NULL)
              OR saved:providerName IS NOT NULL)
        AND ecm:isProxy = 0
        AND ecm:isVersion = 0
        AND ecm:isTrashed = 0
      </pattern>
      <sort ascending="true" column="dc:title"/>
      <pageSize>50</pageSize>
    </coreQueryPageProvider>

    <coreQueryPageProvider name="SAVED_SEARCHES_ALL_PAGE_PROVIDER">
      <pattern>
        SELECT * FROM Document WHERE ecm:mixinType = 'SavedSearch'
        AND ((saved:query IS NOT NULL AND saved:queryLanguage IS NOT NULL)
              OR saved:providerName IS NOT NULL)
        AND ecm:isProxy = 0
        AND ecm:isVersion = 0
        AND ecm:isTrashed = 0
        AND saved:providerName = :pageProvider
      </pattern>
      <sort ascending="true" column="dc:title"/>
      <pageSize>50</pageSize>
    </coreQueryPageProvider>

    <coreQueryPageProvider name="SAVED_SEARCHES">
      <property name="maxResults">DEFAULT_NAVIGATION_RESULTS</property>
      <pattern>
        SELECT * FROM Document WHERE ecm:mixinType = 'SavedSearch'
        AND cvd:contentViewName IS NOT NULL
        AND dc:creator = ? AND ecm:isProxy = 0
        AND ecm:isVersion = 0
        AND ecm:isTrashed = 0
        AND SORTED_COLUMN IS NOT NULL
      </pattern>
      <sort ascending="true" column="dc:title"/>
    </coreQueryPageProvider>

    <coreQueryPageProvider name="SHARED_SAVED_SEARCHES">
      <property name="maxResults">DEFAULT_NAVIGATION_RESULTS</property>
      <pattern>
        SELECT * FROM Document WHERE ecm:mixinType = 'SavedSearch'
        AND cvd:contentViewName IS NOT NULL
        AND dc:creator != ? AND ecm:isProxy = 0
        AND ecm:isVersion = 0
        AND ecm:isTrashed = 0
        AND SORTED_COLUMN IS NOT NULL
      </pattern>
      <sort ascending="true" column="dc:title"/>
    </coreQueryPageProvider>

  </extension>

</component>
